package com.lin.carbon.entity;

import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.FieldFill; // 导入 FieldFill 类
import lombok.Data;

@Data
@TableName("sys_account")
public class SysRegisterAccount {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 账户名
     */
    @TableField("account_name")
    private String accountName;

    /**
     * 用户姓名
     */
    @TableField("username")
    private String username;

    /**
     * 密码
     */
    @TableField("password")
    private String password;

    /**
     * 手机号
     */
    @TableField("phone")
    private String phone;

    /**
     * 用户头像
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 产品版本（字典：040）
     */
    @TableField("product_version")
    private String productVersion;

    /**
     * token
     */
    @TableField("token")
    private String token;

    /**
     * 账户类型(字典：038)
     */
    @TableField("account_type")
    private String accountType;

    /**
     * 账户状态(字典：039)
     */
    @TableField("account_status")
    private String accountStatus;

    /**
     * 所属租户
     */
    @TableField("tenant_id")
    private Long tenantId;

    /**
     * 备注
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 创建人ID
     */
    @TableField("creator_id")
    private Long creatorId;

    /**
     * 更新人ID
     */
    @TableField("updated_id")
    private Long updatedId;

    /**
     * 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /**
     * 账户有效期
     */
    @TableField("validity_period")
    private LocalDateTime validityPeriod;
}